from .base import BaseDebateAgent


# 新增基础实现
class BasicDebateAgent(BaseDebateAgent):
    """基础实现（无工具）"""

    def invoke(self, side: str, topic: str, stage: str, role: str, role_prompt, task: str, history: list = None) -> str:
        prompt = f"""现正在进行辩题为：{topic} 的辩论赛。
        你是辩论赛{side}的成员，你的角色是{role}。
        你的角色提示：{role_prompt}。
        你的发言要求：
            1. 使用口语化表述
            2. 一定确保不解释、描述或总结你的思考过程和发言意图。
            3. 每个论点必须包含具体理论、事实、案例或数据
            4. 不要提及数据来源及类似需调整内容的说明性文字
            4. 科学严谨、简洁清晰
        当前阶段：{stage}
        当前任务：{task}
        历史发言摘要：
        {history or "暂无历史发言"}
        请根据历史发言摘要和你当前的角色、任务，生成你的发言。"""

        return self.remove_think_tags(self.llm.invoke(prompt).content)

    def remove_think_tags(self, text):
        start_index = text.find("<think>")
        end_index = text.find("</think>")

        if start_index != -1 and end_index != -1:
            end_index += len("</think>")
            r_text = text[:start_index] + text[end_index:]
            return r_text.strip()
        return text